﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using TravelGenerator.BusinessObjects.SavingManagement;
using TravelGenerator.BusinessObjects.ObjectValidator;
using TravelGenerator.BusinessObjects.ModelObjects;

namespace TravelGenerator.IBusinessLayer.TravelManagement
{
    public interface IBLTravelManagement
    {
        /// <summary>
        /// Methods allows you to get the saving parameter
        /// </summary>
        /// <param name="entityToSave">The entity to save.</param>
        /// <param name="contact">The contact.</param>
        /// <returns></returns>
        SaveParameter GetSaveParameter(IValidateEntity entityToSave, Contact contact);

        /// <summary>
        /// Méthode permettant de déterminer s'il est possible de sauvegarder l'élément ou pas.
        /// </summary>
        /// <param name="parameter">The parameter.</param>
        /// <returns></returns>
        SaveResult GetSaveResult(SaveParameter parameter);

        /// <summary>
        /// Saves the entity.
        /// </summary>
        /// <param name="result">The result.</param>
        /// <returns></returns>
        SaveEntityResult SaveEntity(SaveResult result);
    }
}
